Memory and storage often have various tradeoffs between precision (errors), endurance, performance, energy efficiency, and density (capacity). Single-level cell (SLC) memories, such as dynamic random access memory (DRAM) and some forms of Flash, store one bit of data in each cell. To provide higher density, multi-level cell (MLC) memory, such as available with Flash and phase-change memory (PCM), subdivides the range of values in a cell into a larger number of levels to store more than one bit of data. For example, Flash represents values in the threshold voltage of a memory cell and PCM represents values in the resistance of the memory cell. Accordingly, for certain multi-level storage, the larger the resistance range allowed by the cell, the higher the number of levels that can be used in the cell to store information, making the cell denser from a storage perspective. That is, the cell is able to store more information per unit of physical volume. However, with respect to the tradeoffs, there are limitations on how dense a cell can be made while still being cheap and reliable.
In addition, the denser the cell, the more precise the write and read machinery needs to be to preserve the same error rate. For example, for a fixed resistance range, using a higher number of levels requires more precise hardware to write and read these cells correctly every time. More precise hardware means higher costs; and, for the same hardware, storing a higher number of levels in a cell incurs a higher read and write error rate. Other resistance-changing processes such as drift in PCM also affect the read error rate.
Cloud servers and mobile devices, as well as other computing devices used to store increasing quantities of data, benefit from denser storage. For example, images and pictures consume a significant portion of storage space in consumer devices and the cloud. Compression techniques may be used by some applications to reduce the amount of data that needs to be stored. Often error correction techniques are used to mitigate the effect of hard and soft errors by hiding the errors from an application. However, with fewer bits representing an image or other file when using compressed file formats, errors may be amplified when the data is output and decompressed.